package com.exercise.module.common.mq;

/**
 * Created by kete on 2017-05-24.
 */
public interface Mq {

    public static String current_pattern = "topic";

    /**
     * 广播模式
     */
    public static String MQ_TOPIC = "topic";

    /**
     * 集群模式
     */
    public static String MQ_QUEUE = "queue";

    /**
     * 发送消息.
     *
     * @param mqCode      mq编号,详见oti_mq_config表中配置.
     * @param messageBody 消息内容.
     * @return 消息id.
     */
    public String send(String mqCode, String messageBody);

    /**
     * 延时发送消息.
     *
     * @param mqCode      mq编号,详见oti_mq_config表中配置.
     * @param messageBody 消息内容.
     * @param deliverTime 延迟投递的时间.
     * @return 消息id.
     */
    public String send(String mqCode, String messageBody, int deliverTime);

    /**
     * 订阅消息.
     *
     * @param mqCode     mq编号,详见oti_mq_config表中配置.
     * @param mqListener 订阅监听类.
     */
    public void subscribe(String mqCode, MqListener mqListener);


    /**
     * 取消订阅.
     *
     * @param mqCode mq编号,详见oti_mq_config表中配置.
     */
    public void unSubscribe(String mqCode);

}
